tu gli stai dicendo:
- se è presente UN SOLO RECORD, fai l'update
- se NON E' PRESENTE record, fai un insert
- se SONO PRESENTI PIU' RECORD, fai una insert
già questa sequenza di if ha poco senso, più che altro nel secondo else... se vuoi un solo record, bastano solo le prime due condizioni.. probabilmente ti duplica i record perchè magari una versione precedente dello script, per errore, ha inserito più di un record per il banner e quindi entra nel secondo else