Dovrebbe funzionare ed è un po' più elegante:
INSERT INTO TABLENAME(col1, col2)
VALUES ('xxx', 'yyy')
ON DUPLICATE KEY UPDATE col1 = VALUES(col1)
Tieni presente che non è necessario aggiornare la parte della chiave primaria della riga. Sappiamo che è lo stesso perché c'è stata una collisione.