I am also facing the same error. Can you please provide the information about what is the difference between $sth->numrows and $sth->rows.
Also I want to know if there is some restriction on the use of $sth->rows as I am also getting 0 even when there are rows in the database.
The easiest way to find out how many rows a query will return is to use the COUNT function in SQL.
For operations that aren't queries (such as INSERTs, UPDATEs, and DELETEs), the do method returns the number of rows affected, -1 when it can't determine the right value, or else undef in case of failure.
$rows = $dbh->do("DELETE FROM Conference WHERE Language='REBOL'");
if (! defined $rows) {
# failed, but this is not needed if RaiseError is active
} else {
print "Deleted $rows rows\n";
}