Debería bastar con NombreDataset.Cancel en el boton que usas para cancelar.
Aunque depende de donde hagas la validación del Id.
Intuyo en que no usas ninguna excepción para mostrar el Showmessage "debe digitalizar nombre",
Normalmente en el OnNewRecord, incrementas el ID y lo asignas al campo.
En el evento BeforePost haces una validación así:
Código Delphi
[-]
if DAtasetNombre.AsString = Emptystr then
begin
ShowMessage('Debe poner el nombre');
Sysutils.Abort;
end;
Si no pones el "Abort", el registro en curso se grabará ¡¡Aunque no tenga el nombre puesto!!
De esta forma, se cancela el grabado, y el registro quedará en modo Inserción.
Un saludo