Вы сохраняете те же значения первичного ключа?
Если у вас есть несколько вариантов, некоторые версии SQL поддерживают оператор MERGE, который будет обновляться или вставляться так, как вам требуется.
Или вы можете написать свой собственный.
Что-то похожее на загрузку всех строк в промежуточную таблицу в вашей базе данных SQL и построчную проверку на наличие вашего первичного ключа в основной таблице SQL. Если ключ существует, обновите строку и, если нет, вставьте ее.