Ein 'INSERT ... ON DUPLICATE KEY UPDATE...' will wissen, wann der Fall 'Duplicate Key' eintritt, das musst Du nur festlegen und dann funktioniert das alles wie von Geisterhand ;)
So wird er das nicht verstehen.Du benötigst im Design Deiner Tabelle einen (ggf. auch kombinierten) Indexeintrag.
kai