Ambos
REPLACE INTO
e a ON DUPLICATE KEY
alternativa sugerida são SQL não padrão da variante MySQL. Portanto, se você o usa depende a) se você está usando o MySQl eb) se deseja estar vinculado a essa variante. ANSI SQL define um
MERGE
sintaxe que é mais padrão, se for implementada em sua plataforma