yes the tuple construct provides this:
>>> from sqlalchemy import select, column, tuple_
>>> stmt = select([column('q')]).where(tuple_(column('x'), column('y')) == tuple_(3, 4))
>>> print(stmt)
SELECT q
WHERE (x, y) = (:param_1, :param_2)
however, tuples are not supported on all backends and it's safer to use AND:
>>> from sqlalchemy import and_
>>> stmt = select([column('q')]).where(and_(column('x') == 3, column('y') == 4))
>>> print(stmt)
SELECT q
WHERE x = :x_1 AND y = :y_1
From a Python perspective, there's no real reason to use one or the other, as either one can be generated programmatically.
the tuple_ construct is provided mostly to support IN expressions against composite values, for equality it's not strictly necessary.