code: @Override
      public int bulkInsert(Uri uri, ContentValues[] values) {
          int result = 0;
  
          if (!controller.hasPreinitialized()) {
              throw new IllegalStateException("Controller has not been initialized.");
          }
  
          int patternCode = controller.getUriMatcher().match(uri);
          MatcherPattern pattern = controller.findMatcherPattern(patternCode);
          if (pattern == null) {
              throw new IllegalArgumentException("unknown uri : " + uri.toString());
          }
  
          SQLiteDatabase db = this.getHelper().getWritableDatabase();
  
          db.beginTransaction();
          try {
              for (ContentValues value : values) {
                  Parameter parameter = new Parameter(uri, value);
  
                  Uri resultBulkInsert = this.onBulkInsert(this.getHelper(), db, pattern, parameter);
                  if (resultBulkInsert != null) {
                      result++;
                      // this.getContext().getContentResolver().notifyChange(resultBulkInsert, null);
                  }
              }
              db.setTransactionSuccessful();
  
              if (result >= 1) {
                  this.onBulkInsertCompleted(result, uri);
              }
          } finally {
              db.endTransaction();
          }
          return result;
      }
docs: /*
  @see android.content.ContentProvider#bulkInsert(android.net.Uri,
  android.content.ContentValues[])
  @since 1.0.1