il lock devi dividerlo in 2 momenti: la lettura per la modifica (o l'inserimento di una nuova chiave) e il salvataggio

quando effettui la lettura per la modifica ti salvi la chiave che stai modificando

un secondo utente, quando legge la stessa chiave la trova bloccata. Quando salvi togli il lock

Ricorda che se il client che ha effettuato il lock va i ncrash ti rimane la tabella con la chiave del lock, quindi fai in modo di mettere nella tabellla anche un id della postazione che aveva messo il lock così puoi fare la pulizia in caso di necessita