well a CREATE TABLE will autocommit but only if it's on an Engine that's not already in a transaction....and when you use a Session it sets up a transaction that stays open until you say commit().
I can see the problem here, one way around is to actually bind the Session to a connection like this:
conn = engine.connect()
sess = Session(bind=conn)
otherwise, just sending through the "commit" on the DBAPI connection directly might not be so terrible. If you said, session.connection().connection.commit() that should have the same effect.