PooledConnection обычно используется только контейнерами напрямую и используется для управления пулами соединений. Вам нужно иметь дело с этим, только если вы пишете контейнер или что-то, что выдаст соединения с другим кодом / библиотеками, которые будут выполнять реальную работу.
Стандартные объекты java.sql.Connection используются клиентами JDBC и используются для фактической работы с базой данных. Этот код не должен касаться PooledConnection, и ему будут либо предоставлены подключения к нему через контейнер (например, контейнер Java EE или через внедрение зависимостей), либо он сам создаст подключения из DataSource или из DriverManager.