Mira leyendo el manual de php me encontre con algo interesante, para el uso de updates, deletes no es necesario el mysql_free_result, solo es necesario cuando usas un select, show, explain o describe segun lei, es decir que si usas en cualquier otro caso te arrojara ese warning, a si que simplemente borra el free_result de tu update, cya:
Cita: If a non-resource is used for the result, an error of level E_WARNING will be emitted. It's worth noting that mysql_query() only returns a resource for SELECT, SHOW, EXPLAIN, and DESCRIBE queries.