Miałem podobny problem z wstawianiem pyODBC do bazy danych SQL Server 2008 przy użyciu executemany(). Kiedy uruchomiłem ślad profilera po stronie SQL, pyODBC tworzył połączenie, przygotowywał sparametryzowaną instrukcję INSERT i wykonywał ją dla jednego wiersza. Wtedy nie przygotuje oświadczenia i zamknie połączenie. Następnie powtórzył ten proces dla każdego wiersza.
Nie udało mi się znaleźć żadnego rozwiązania w pyODBC, które by tego nie robiło. Skończyło się na tym, że przełączyłem się na ceODBC w celu połączenia z SQL Server i poprawnie użyłem sparametryzowanych instrukcji.