Thanks for finding this. As with the other helpful suggestion, it's not really the intended use case (for SQL::DB, in this case). But the following hack works:
my $dbh; # connected elsewhere
my $sqlgen = SQL::Abstract->new;
my $sqldb = SQL::DB->new;
$$sqldb{sqldb_dbh} = $dbh; # <- this is why I called it a hack
print $sqldb->query_as_string($sqlgen->insert(atable=>{bar=>1,baz=>und
+ef,foo=>"a string's error"}));
__END__
#prints
INSERT INTO foo ( bar, baz, foo) VALUES ( '1', NULL, 'a string\'s erro
+r' )