Implementing use of 'with CustomClass() as foo' in own class with DB-Connection
The reason to use a with clause is 1) clarity and 2) exception handling. Clarity because you have explicitly called out "right here, I am working with the object" and exception handling because you are guaranteed to have the exit handler called and any cleanup accomplished.

Canonical examples are:

with open(filename, "w") as fp:
    data = generate_some_data()
    fp.write(data)
    data2 = more_generation()
    fp.write(data2)

with lock:
    # all code in here is locked


You don't provide a lot of information about what you intend to accomplish in the with clause in your code. Typically the with block is not too long and focused on a task. If Client is meant to represent a player then you are probably putting the abstraction in the wrong place. A GameClient class could contain a DBConnection object. This way you could mock out the DB for testing for instance. Or switch to another DB type. If you meant Client to be DBClient I would rename it.