I can reproduce this in earlier version as well (I tried Jaybird 2.2.7, 2.2.4, 2.2.0 and 2.1.6). It has essentially always been broken. It is not related to DBCP as it is also reproducible without DBCP.
As to why it did work with DBCP 1, I'd guess that DBCP 1 explicitly closes the result set before roll back, and DBCP 2 trusts the driver to do the right thing. I haven't looked at the DBCP code though, so that is just a guess.