The jam on the turn is fine.
Opponent has only ~2K behind and anything you raise, as long as it isn't a min raise, practically forces opponent to shove all in, in which you'll have to call. Folding to their 3bet shove would be bad at this point, so if you think they might shove to your raise and you're going to call, get it in first.
Calling the turn bet is not an option at all because it's very likely we have the best hand at the moment. There are a lot of turn cards we don't want to see, especially another heart. At the same time, there are a lot of cards the opponent doesn't want to see on the river because it'll kill our action. Lets say they are drawing to a higher flush draw, if the river is a brick, they check/fold to our bet and we lose value on our hand. So, our best option is to shove and either pick up the pot or hope the opponent has some type of hand worth calling while they're behind.
-The worst case scenario is they have a higher flush. Oh well, it happens.
-Decent case scenario is you currently have a better hand and they're drawing to a better one. Depending on their hand, you're ~60%-85% to win if they have some type of better draw.
-Best case scenario is they called with a smaller flush, are drawing to a smaller flush, or are just completely beat (ex: they have AA, no hearts)