I would probly play the hand like you did, except i would probably bet the river for value if he checked the hand to me. I wouldnt want to bet the turn really because i hate being put in a position where i get check-raised when i have the worst hand, and am forced to call a bet when i have the worst of it and make a bigass pot that ill be tempted to call the river bet in because its gotten so big. With the turncard, it no longer becomes an issue of protecting your hand, because if he holds a hand that beats you hes made it already. It becomes simply a matter of getting to the showdown cheaply, and betting your hand for value if he checks the river, since if he had a spade that was good enough to bet with on a draw, then its probably worth betting when it gets there, right? I would most likely donk off a bet on he river bet if he bets it, hoping that your turn check induced a bluff (since all you did was call the flop instead of raise it up). Also, I like to make these calls against bluffy mizors, because even if he has it, he'll be less inclined to bluff scare cards into you later if he thinks youll call him. Of course, calling with top set doesnt exactly make you a call station, but still. Unless i know the particular mizor, i will keep someone honest in this spot probably close to half the time, because mizors love to fire at those scare cards.
I probably would have raised the flop though, and hoped he is a mizor with the
![The Ace of Spades [As]](https://pofex.com/images/smilies/As.gif)
and maybe a pair to go with it, that would three bet you and let you cap his assup.
Anyways, yeah, 4 flushes when you have a set really suck, because it makes you feel more justified in calling the river bet, since you beat EVERY HAND BUT the flush, and you can hope maybe he has some janky 2 pair, or a smaller set.