Използвам това:
begin tran;
update ... where ... ;
if @@rowcount = 0
insert ...
commit tran;
Както разбирам, с подходящи индекси, актуализацията поставя правилни заключване на диапазона, които биха попречили на други да вмъкват същото нещо едновременно.