def METHOD_NAME(database, freezer):
    dbens, addy1, addy2 = _simple_ens_setup(database, freezer)
    addy3 = make_evm_address()
    with database.user_write() as cursor:
        dbens.add_ens_mapping(cursor, addy1, 'addy1', ts_now())  # adding existing mapping == noop
        # Check that simply adding existing name for other address raises
        ts2 = START_TS + 3600
        freezer.move_to(datetime.datetime.fromtimestamp(ts2, tz=datetime.timezone.utc))
        with pytest.raises(sqlcipher.IntegrityError):  # pylint: disable=no-member
            dbens.add_ens_mapping(cursor, addy3, 'addy1', ts_now())
        mappings = dbens.get_reverse_ens(cursor, [addy1, addy2, addy3])
        assert mappings == {
            addy1: EnsMapping(
                address=addy1,
                name='addy1',
                last_update=START_TS,
            ),
            addy2: EnsMapping(
                address=addy2,
                name='addy2',
                last_update=START_TS,
            ),
        }
        # Use the update values function to do it properly
        mappings_to_send = dbens.update_values(
            write_cursor=cursor,
            ens_lookup_results={addy3: 'addy1'},
            mappings_to_send={},
        )
        assert mappings_to_send == {addy3: 'addy1'}
        # confirm addy3 replaced addy1
        mappings = dbens.get_reverse_ens(cursor, [addy1, addy2, addy3])
    assert mappings == {
        addy3: EnsMapping(
            address=addy3,
            name='addy1',
            last_update=ts2,
        ),
        addy2: EnsMapping(
            address=addy2,
            name='addy2',
            last_update=START_TS,
        ),
    }