Yes, this is actually a potential issue.

My another solution is that not call conn_finish() in __del__() and comment to tell user to
call conn_finish() if they want to recovery this connection.

Or we leave this action to caller to recover it?

But I have to say the two solutions are both not acceptable to user. Inconvenient and easy to forget.

What's your suggestion??