Oui, vous auriez une condition de concurrence.
Une façon de gérer cela est d'avoir sp_getapplock après BEGIN TRAN en mode Transaction et piéger/gérer le statut de retour selon les besoins. Cela sérialisera littéralement (au sens de l'exécution, pas de l'isolement) les appelants afin qu'un seul SPID s'exécute à la fois.