Jasne, że możesz to zrobić z SQLAlchemy.
Wszystko, co musisz zrobić, to stworzyć różne silniki połączeń, każdy z własnym kreatorem sesji. Nic w SQLAlchemy nie ogranicza cię tylko do jednej bazy danych na raz.
engines = []
sessions = []
for dbconninfo in databases:
engine = create_engine(dbconninfo)
engines.append(engine)
sessions.append(sessionmaker(bind=engine)())
Każdą sesję można wykorzystać do uruchamiania zapytań, obiekty wynikowe są dołączane do sesji, w której powstały, dzięki czemu zmiany wracają do właściwej bazy danych. Zapoznaj się z dokumentacją sesji szczegółowo, aby zobaczyć, co się stanie, jeśli na przykład scalisz obiekt z jednej sesji w drugą.