To powinno działać i jest trochę bardziej eleganckie:
INSERT INTO TABLENAME(col1, col2)
VALUES ('xxx', 'yyy')
ON DUPLICATE KEY UPDATE col1 = VALUES(col1)
Pamiętaj, że nie musisz aktualizować części klucza podstawowego w wierszu. Wiemy, że tak samo, bo doszło do kolizji.