-2 does not necessarily mean error, it might be as mentioned, the case of count of affected rows is not available.
EDIT
-2 is the value of Statement.SUCCESS_NO_INFO (while EXECUTE_FAILED is -3). So unless the driver does not comply with the JDBC specification, -2 unequivocally means success
END OF EDIT
The errors are reported via BatchUpdateException
Normally, if you run N queries in your batch script you will get the count of updates per query i in the result:
int result[] = jdbcTemplate.batchUpdate(sql);
so:
result[0]
will hold the update count for the first query,
result[1]
will hold the update count for the second query etc.