Para evitar estos problemas tienes que analizar el estado del Dataset correspondiente.
Código Delphi
[-]
procedure TForm1.Button1Click(Sender: TObject);
begin
if DataSource1.State in [ dsInsert] then
ShowMessage('Podemos insertar')
else
ShowMessage('No podemos insertar');
end;
Un Saludo.