Ja, du hättest eine Race Condition.
Eine Möglichkeit, dies zu verwalten, ist sp_getapplock nach BEGIN TRAN im Transaktionsmodus und fangen/verarbeiten Sie den Rückgabestatus nach Bedarf. Dadurch werden Aufrufer buchstäblich serialisiert (im Sinne der Ausführung, nicht der Isolierung), sodass jeweils nur eine SPID ausgeführt wird.