can I enable committing row in Ultra grid only when I press on my save button
You can use the UpdateMode property of the grid to control when changes in the grid are committed to the underlying data source.
But the CurrencyManager in DotNet implicitly does an EndUpdate any time it's position is changed. You can try setting the grid's SyncWithCurrencyManager property to false to stop the grid from changing the position, but I think this will only give you limited success.