Hola,
utiliza una edición "en vacío" previa a la edición real, algo parecido a ...
Código:
UPDATE <tabla>
SET <clave> = <valor_actual_clave>
WHERE <clave> = <valor_actual_clave>
...
...
/* resto de procesos */
...
...
/* edición real */
con ésto consigues simular (en realidad es un bloqueo real) un bloqueo sobre el registro(s) en cuestión.
Si quieres que al resto de transacciones (usuarios) el servidor les devuelva un error si intentan editar también ese registro, utiliza el parámetro "
NO WAIT" para la transacción; si quieres que la transacción espere a que se solucione el bloqueo (bien por un COMMIT o un ROLLBACK) utiliza el parámetro "
WAIT".
Saludos.