From the DBI POD for "execute":
"For a non-SELECT statement, execute returns the number of rows affected, if known. If no rows were affected, then execute returns "0E0", which Perl will treat as 0 but will regard as true. Note that it is not an error for no rows to be affected by a statement. If the number of rows affected is not known, then execute returns -1."
A simple text search (ctrl-f) will find it.
It helps to remember that the primary goal is to drain the swamp even when you are hip-deep in alligators.