Puedes usar el evento más cercano a guardar los datos: BeforePost, pero haciendo la comprobación del millón:
Código Delphi
[-]
if dsInsert inTableXXX.State then
La primera vez que se guarde el registro, entrará en el IF, cuando posteriormente se modifique el registro, ya no entra, porque el estado será dsEdit.
Mira en la ayuda de delphi por "TDataSetState type" verás en todos los estados que puede estar un dataset.
Un saludo