Cita: El problema solo inserta,no actualiza si existe.
Porque en ningún momento estas asignándole valor a la variable
existe. Sólo la estás declarando, pero no haces nada con ella, entonces su valor es NULL. Como NULL no es un dato, entonces saldrá siempre por el ELSE.
Siempre.