Hola qué tal.
A ver si comprendo, si estás manejando tablas y los datos de éstas vienen del servidor y la relación se establece en tu sistema, con CacheUpdates, ApplyUpdates, CancelUpdates y RevertRecord lo controlas y dejas que el servidor controle qué usuario actualizó primero el registro.
También depende el tipo de sistema que estés desarrollando si es web te recomendaría asignar ID's temporales y cuando confirmen los datos entonces cambias la clave por una definitiva.
Si es cliente servidor, lo que a mí me ha funcionado es usar TQuery y TClientDataSet para cosas indefinidas (como es tu caso), con eso tienes el control de "todo" lo que mandes a tu DB.
Si es multiusuario..., QUE VALIENTE!!!, yo ocuparía todo lo anterior y un lote de aspirinas.
Saludos.
Eduardo Laguna