Ano, měli byste rasovou podmínku.
Jedním ze způsobů, jak to zvládnout, je mít sp_getapplock po BEGIN TRAN v transakčním režimu a zachyťte/zpracujte návratový stav podle potřeby. To doslova serializuje (ve smyslu provedení, nikoli izolace) volající, takže se v jednu chvíli spustí pouze jeden SPID.