Questo script mi è familiare...

Dovresti fare un debug dello script per verificare in quale punto avviene la "prima" e in quale la "seconda" query.

In ogni caso potrebbe anche dipendere di questioni lato client che eseguono il doppio submit. Personalmente preferisco gestire tale "vecchia" problematica tramite un classico redirect.