Tienes que realizar un análisis de las tuplas antes de intentar insertarlas. Es decir, tienes que verificar si hay tuplas con misma clave primaria y dado el caso definir cual será la que deberás insertar. Una vez analizadas y procesadas entonces sí mandárselas al motor de BD. Si lo haces directamente en la BD se daría el siguiente supuesto:
Código:
Se inserta tupla 1 de tabla A en tabla B
Se toma siguiente tupla de tabla A
clave de tupla 2 de tabla A ya existe en tabla B?
[NO] insertar tupla 2 de tabla A en tabla B
[SI] x propiedad de tupla 2 de tabla A es mayor que la que tiene la misma clave en tabla B ?
[NO] No insertar nada y saltar a siguiente tupla de tabla A
[SI] Eliminar tupla existente de tabla B e insertar la nueva tupla en tabla B
Continuar con siguiente tupla de tabla A y repetir ciclo
Depende donde quieras colocar la lógica de negocio de tu aplicacion. En cualquier caso deberás usar una transacción para garantizar que si algo falla no te deje a medias alguna tabla.