Да, ще имате условие за състезание.
Един от начините да управлявате това е да имате sp_getapplock след BEGIN TRAN в транзакционен режим и прихващане/обработване на състоянието на връщане според изискванията. Това буквално ще сериализира (в смисъл на изпълнение, не изолация) повикващите, така че само един SPID да се изпълнява във всеки един момент.