code: private TableLoadResult load (Table table) {
          // This object will be returned to the caller to summarize the contents of the table and any errors.
          TableLoadResult tableLoadResult = new TableLoadResult();
          int initialErrorCount = errorStorage.getErrorCount();
          try {
              tableLoadResult.rowCount = loadInternal(table);
              tableLoadResult.fileSize = getTableSize(table);
              LOG.info(String.format("loaded in %d %s records", tableLoadResult.rowCount, table.name));
          } catch (Exception ex) {
              LOG.error("Fatal error loading table", ex);
              tableLoadResult.fatalException = ex.toString();
              // Rollback connection so that fatal exception does not impact loading of other tables.
              try {
                  connection.rollback();
              } catch (SQLException e) {
                  e.printStackTrace();
              }
          } finally {
              // Explicitly delete the tmp file now that load is finished (either success or failure).
              // Otherwise these multi-GB files clutter the drive.
              if (tempTextFile != null) {
                  tempTextFile.delete();
              }
          }
          int finalErrorCount = errorStorage.getErrorCount();
          tableLoadResult.errorCount = finalErrorCount - initialErrorCount;
          return tableLoadResult;
      }
docs: This wraps the main internal table loader method to catch exceptions and figure out how many errors happened.