docs: @Override
    public final long executeInsert(final String pTable,
      final ColumnsValues pColumnsVals) throws Exception {
      try {
        boolean isDbg = getLogger().getIsShowDebugMessagesFor(getClass())
          && getLogger().getDetailLevel() > 30000;
        if (isDbg) {
          ColumnsValues cv = filterCv(pColumnsVals, true);
          getLogger().debug(null, SrvDatabase.class, "try to insert t: " + pTable
            + " cv: " + pColumnsVals);
          getLogger().debug(null, SrvDatabase.class, ", CVF: " + cv);
        }
        ContentValues contentValues = convertToContentValues(pColumnsVals, true);
        long result = this.sqliteDatabase.insert(pTable, null, contentValues);
        if (isDbg) {
          getLogger().debug(null, SrvDatabase.class, "result insert:" + result);
        }
        if (result == -1) {
          throw new Exception("Result = -1!");
        }
        return result;
      } catch (Exception ex) {
        ColumnsValues cv = filterCv(pColumnsVals, true);
        String msg = ex.getMessage() + ", table: " + pTable + ", cv: "
          + pColumnsVals + ", cvf: " + cv;
        ExceptionWithCode ewc = new ExceptionWithCode(SrvDatabase.SQL_EXEC_ERROR,
          msg);
        ewc.setStackTrace(ex.getStackTrace());
        throw ewc;
      }
    }