I'd add one thing to your module: the ability to use different sources for your SQL queries.
For example, when doing a web site where I work, we create an sql directory next to the web root. The queries all go into individual files with a .sql extension. We have perl module similar to yours but it doesn't take the DBI object, so you end up with calls like this:
my $sth = $dbi->prepare($sql->customer_update);
Now, this doesn't work too well for utility scripts as it is hard to define a central location for sql queries. I would recommend developing a way to store sql queries in the DATA block as well.
Just some thoughts.