Хабр Курсы для бэкендеров
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!

Лучше конечно делать тесты на больших данных. Там лучше видно разницу.
32 тыс строк - это ни о чем, просто засунул в транзакцию и ладно.
Вылить во временный CSV/in-memory и залить COPY.
Щито?
Если что, с незапамятных времён в документации pandas:
https://pandas.pydata.org/docs/user_guide/io.html#io-sql-method
Зачем вчитываться в доку psycopg2, если psycopg3 уже года 4 как релизнулся?
Самый быстрый способ загрузить 32 000 строк в PostgreSQL с помощью Python