Pools de Conexões

Olá pessoal! Estou estudando os pools de conexões C3P0 e DBCP, para escolher qual é o melhor para adotar na minha aplicação. Gostaria de tirar uma dúvida: alguém sabe em que momento uma conexão realmente volta para o pool? Eu acredito que seja quando é chamado o método connection.close(), mas gostaria de uma confirmação ou de um referência explicíta que eu pudesse citar. Alguém poderia confirmar para mim se estou correto ou me citar esta referência?

Muito obrigado!