from sqlalchemy import (
    create_engine,
    Column,
    ForeignKey,
)
from sqlalchemy import (
    Integer,
    String,
)
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import (
    relationship,
    sessionmaker,
)

Base = declarative_base()

class User(Base):
    __tablename__ = 'user'

    id = Column(Integer, primary_key=True, nullable=False)
    name = Column(String, unique=True, nullable=False)

class Group(Base):
    __tablename__ = 'group'

    id = Column(Integer, primary_key=True, nullable=False)
    name = Column(String, unique=True, nullable=False)
    owner_id = Column(Integer, ForeignKey('user.id'))

    owner = relationship('User', backref='groups')

def main():
    engine = create_engine('sqlite://')
    Base.metadata.create_all(bind=engine)

    Session = sessionmaker(bind=engine)

    session = Session()
    foo = User(name='foo')
    users = session.query(User).all()
    assert foo not in users

    session.add(foo)
    users = session.query(User).all()
    assert foo in users

    session.commit()

    session = Session()
    foo = session.query(User).filter_by(name='foo').first()
    baz = Group(name='baz')
    groups = session.query(Group).all()
    assert baz not in groups

    bar = Group(name='bar', owner=foo)
    groups = session.query(Group).all()
    assert bar not in groups

if __name__ == '__main__':
    import sys
    sys.exit(main() or 0)

❯ env/bin/python test.py
Traceback (most recent call last):
  File "test.py", line 64, in <module>
    sys.exit(main() or 0)
  File "test.py", line 58, in main
    assert bar not in groups
AssertionError