code: @Override
      protected void onPersist(EntityMetadata entityMetadata, Object entity, Object id, List<RelationHolder> rlHolders)
      {
  
          KuduSession session = kuduClient.newSession();
          KuduTable table = null;
          try
          {
              table = kuduClient.openTable(entityMetadata.getTableName());
          }
          catch (Exception e)
          {
              logger.error("Cannot open table : " + entityMetadata.getTableName(), e);
              throw new KunderaException("Cannot open table : " + entityMetadata.getTableName(), e);
          }
          Operation operation = isUpdate ? table.newUpdate() : table.newInsert();
          PartialRow row = operation.getRow();
          populatePartialRow(row, entityMetadata, entity);
          try
          {
              session.apply(operation);
          }
          catch (Exception e)
          {
              logger.error("Cannot insert/update row in table : " + entityMetadata.getTableName(), e);
              throw new KunderaException("Cannot insert/update row in table : " + entityMetadata.getTableName(), e);
          }
          finally
          {
              try
              {
                  session.close();
              }
              catch (Exception e)
              {
                  logger.error("Cannot close session", e);
                  throw new KunderaException("Cannot close session", e);
              }
          }
      }
docs: On persist.
  
  @param entityMetadata
  the entity metadata
  @param entity
  the entity
  @param id
  the id
  @param rlHolders
  the rl holders