I would like to quote a writer or many of them here.
being able to lay down big hands is what seperates good players from bad players. It is all situational, is it a tourney for your tourney life or a cash game? Has the guy been making plays like this all night?
In normal situations every bet you make is for a reason, you are not just betting $52 into a $103 pot because you like the green chips and they look pretty in the pot. You are betting that to reduce someones odds
and to see how they react to the bet. Once you recieve that information on the flop then on turn you reavaluate on the danger of the turn card and again try to gather some info from your opponent. By pushing all in on flop or calling you really have no info so you have to go back one street and try to put the pieces of the puzzle together.
in your situation it is hard because you have a good hand with the set but there is a flush out. It is a rough spot, if you feel this is a guy you can outplay like 80% of the time I would be inclined to fold here and wait him out. even if he has 1 heart it is still a gamble, of course if he is a decent player and you have ok odds to call then call.
any of that make sense?