code: @Override
      protected Object getRowKeyValue(final FacesContext context) {
          final ValueExpression veRowKey = getValueExpression(PropertyKeys.rowKey.name());
          if (veRowKey == null) {
              throw new RuntimeException("RowKey required on sheet!");
          }
          final Object value = veRowKey.getValue(context.getELContext());
          if (value == null) {
              throw new RuntimeException("RowKey must resolve to non-null value for updates to work properly");
          }
          return value;
      }
docs: Gets the rowKey for the current row
  
  @param context the faces context
  @return a row key value or null if the expression is not set