Quindi ho finito per usare fputcsv per inserire i dati che ho modificato in un nuovo file CSV, quindi ho usato il comando LOAD DATA INFILE per inserire i dati dal nuovo file CSV nella tabella. Questo lo ha cambiato dal timeout a 120 secondi per 1000 voci, a circa 10 secondi per eseguire 10.000 voci. Grazie a tutti coloro che hanno risposto.