1. Are you sending real values in place of the ones you have in the execute? If not it is most likely a type mismatch between the fields and the data you are supplying.
2. Where does the $SQL->execute come from? If that is connected with the above insert, I would imagine it would be something like:
my $rowCount = $insertHandle->commit();
getting rid of the $SQL->execute all together, unless it is a separate command that isn't included in the sample you provided. Regardless if you have to commit a change you need to do it on the correct database handle at some point I would assume.