Hey Frank,
My advice for the pool, is to use pg_bouncer. Thus, your WSGI application can focus on working on your business, and not manage technical optimization.
The only difference you need to pay attention in your code is to release the PG connection properly for the next client (make a rollback()).
In the code to process an HTTP request, you should have something to release the allocated resources (like PG connection). Let's say that you have a Controller class, at the end of the HTTP request processing, you could have something like this:
if self.conn.get_transaction_status() > 0:
self.conn.rollback()
self.conn.close()
Cheers,
Sam