Para verificacion de un Campo
if not(Tabla.Locate('Campo1',Edit1.text,[loCaseInsensitive, loPartialKey]))then
begin
Tabla.Append;
TablaCampo1.AsString:= Edit1.Text;
// Agrega Info en todos los campos que sean requeridos
Tabla.Post;
......
Para verificacion de varios Campos al mismo Tiempo
if not(Tabla.Locate('Campo1;Campo2;Campo3',VarArrayOf([Edit1.text,Edit2.text,Edit3.text]),[loCaseInsensitive, loPartialKey]))then
begin
Tabla.Append;
TablaCampo1.AsString:= Edit1.Text;
TablaCampo2.AsString:= Edit2.Text;
TablaCampo3.AsString:= Edit3.Text;
// Agrega Info en todos los campos que sean requeridos
Tabla.Post;
......
despues del Post Tienes que cerrar y abrir el dataset consultado para reflejar los cambios.
Para Usar esta Instruccion "Locate" debes tener en la parte Uses DB
Espero te sirva, es como yo lo hago.Saludos y suerte.