Stavo riscontrando un problema simile con l'inserimento di pyODBC in un DB di SQL Server 2008 utilizzando executemany(). Quando ho eseguito una traccia del profiler sul lato SQL, pyODBC stava creando una connessione, preparando l'istruzione di inserimento parametrizzata ed eseguendola per una riga. Quindi non preparerebbe la dichiarazione e chiuderebbe la connessione. Ha quindi ripetuto questo processo per ogni riga.
Non sono riuscito a trovare alcuna soluzione in pyODBC che non lo facesse. Ho finito per passare a ceODBC per la connessione a SQL Server e ha utilizzato correttamente le istruzioni parametrizzate.