You are right, pageData() updates the rows on current page only in case paging is used.
dataModel.data points to original data without grouping. Grouping changes the row indices of the rows.
So turn off the grouping before updating the rows and turn it on just after you are done with updates.
{
type: 'button',
label: 'update rows',
listener: function(){
this.groupOption({on: false});
var list = this.option('dataModel.data').map(function(rd, i){
return {rowIndx: i, newRow: { 'ShipCountry': 'India' }};
});
this.updateRow({
refresh: false,
rowList: list
});
this.groupOption({on: true});
}
}