>2回もSQL実行するのは無駄
指摘を受けてハッとしました。
やりたい事を伝え忘れていました。
「Z テーブルの X カラムの値が 49 のレコード」は結果テーブル1行だけというのは変わらないのですが、
その直前にわりと大きめのトランザクションが走ります。
そのトランザクションが複数走るのではと心配になっていました。
トランザクションはまとめて一気に走らせて「何かに失敗したら全部ロールバックできる便利な機能」位しか理解できていません。
仕組みが良く分かっていないので今勉強中です。

2人から同じご指摘いただいているので、普通はテーブルロックで行うって事ですよね。。。
ちょっとそちらも勉強して理解を深めようと思います。

進捗があったらまた書き込ませていただきます。