You need to annotate the list that drives the dataTable with @DataModel if you wish to pass the current row as an argument of a method.
Passing the ID of the object is more RESTful which has a lot of benefits (logical URLs, linkability, etc). I've done all of mine using @DataModel but at some stage I plan to go back and redo most of it with IDs (again).
Do you have an example of how you are using datamodel to handle this? I have tried, but each time my objects that are submitted are null and are not being retrieved properly?