code: @Override
      public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
          int result = -1;
  
          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());
          }
  
          Parameter parameter = new Parameter(uri, values, selection, selectionArgs);
          SQLiteDatabase db = this.getHelper().getWritableDatabase();
  
          result = onUpdate(this.getHelper(), db, pattern, parameter);
          if (result >= 0) {
              this.onUpdateCompleted(result, uri, pattern, parameter);
          }
          return result;
      }
docs: /*
  @see android.content.ContentProvider#update(android.net.Uri, android.content.ContentValues,
  java.lang.String, java.lang.String[])