The reason you need to generally dispatch updates via modeling is the fact that bpmn-js needs to be informed when elements have changed (read about it here).
Using modeling.updateProperties(...) changes attributes of the underlying BPMN element (exactly what you want to do). For details have a look at the UpdatePropertiesHandler that takes care of doing that.
For further assistance, please provide your example somewhere so we can look into it.
Edit: Learn about the available BPMN properties in the bpmn.json descriptor.