Since you have set the property
needsEntityContext="true"
then the widget must be placed inside a dataview as you noted above. When the widget is created on the page, it will call this function in your widget when the context object is available:
update(obj, callback)
In here: obj is your context object. If you look at the sample widget boilerplate here, you'll see that the context obj is stored as this._contextObj. Then see lines 136 and 141 for how the microflow is actually called with that context object as a parameter.