Если ваша таблица является «независимой» от других (я имею в виду, что она не будет вызывать каскадное удаление или не установит отношения внешних ключей к нулю), хороший трюк может состоять в том, чтобы сначала УДАЛИТЬ строку, а затем снова ВСТАВИТЬ , Это может выглядеть так:
УДАЛИТЬ ОТ MyTable WHERE prop1 = 'aaa'; // предполагая, что он выберет не более одной строки!
INSERT INTO MyTable (prop1, ...) VALUES ('aaa', ...);
Если вы удаляете то, что не существует, ничего не произойдет.