Tak, miałbyś warunki wyścigowe.
Jednym ze sposobów zarządzania tym jest posiadanie sp_getapplock po BEGIN TRAN w trybie transakcyjnym i trap/obsługuj status zwrotu zgodnie z wymaganiami. Spowoduje to dosłowną serializację (w sensie wykonania, a nie izolacji) wywołujących, więc tylko jeden SPID jest wykonywany w danym momencie.