code: def test_collection_move_commitfirst(self):
      User, Address = self.classes.User, self.classes.Address
  
      sess = fixture_session()
      a1 = Address(email_address="address1")
      u1 = User(name="jack", address=a1)
  
      u2 = User(name="ed")
      sess.add_all([u1, u2])
      sess.commit()  # everything is expired
  
      # load u1.address
      u1.address
  
      # reassign
      u2.address = a1
      assert u2.address is a1
  
      # the commit cancels out u1.addresses
      # being loaded, on next access its fine.
      sess.commit()
      assert u1.address is None
      assert u2.address is a1
  
imports: from sqlalchemy import testing
  from sqlalchemy import text
  from sqlalchemy.orm import attributes
  from sqlalchemy.orm import backref
  from sqlalchemy.orm import relationship
  from sqlalchemy.orm import Session
  from sqlalchemy.testing import eq_
  from sqlalchemy.testing import is_
  from sqlalchemy.testing.fixtures import fixture_session
  from test.orm import _fixtures
label_desc: Use image node_id 2 for calling the O2OScalarMoveTest obj's underlying member method code with example usage: obj.test_collection_move_commitfirst() without return types