Bueno, por lo pronto, si estás pasando el ID del registro, es que el registro ya existe y lo que tienes que hacer es actualizar (UPDATE) y no insertar (INSERT). Son operaciones absolutamente diferentes en SQL, que incluso tienen sintaxis distinta.
Código MySQL:
Ver originalSET campo
= loquequieresponer
WHERE campoID
= valorIDderegistroquequieresmodificar