Hola:
De hecho se me hacen pocos registros, tienen razón con la excepción se puede manejar (de hecho ya no buscarías la llave en la tabla destino), quedaria:
Código Delphi
[-]
try
Insert into TablaDestino values....
except
update TablaDestino...
where Llave = TablaOrigen.llave
end;
A ver prueba así
Saludos