UPDATE adds a new row when I merely want to edit an old one
Check the database and do a select first using the same criteria and see what it returns. As mentioned above, UPDATE will not insert a new row. 
I'm positive your select will return more than one row and then you can work back from there to find the issue in your data or  your code. 

Also, no need to use INSERT INTO - that will not update but try to insert new records and any records that satisfy your where clause. 

You could try to debug and see what value is being passed into the $id variable once you worked out the sql.