As the article you're quoting from said, we used the latter method in that system. We had load and save methods. Making every method call act on the database is just not necessary in the vast majority of situations, and this seems to be agreed on in the Java camp as well, where the "best practice" for working with EJBs (objects that are stored in a database) is to pass a hash with multiple attribute values rather than call individual methods.
My advice about modelling objects that are stored in a database is to not even attempt to hide the fact that they're stored in a database. Systems that try to avoid thinking about transactions or replace SQL completely end up with poor performance and compromises. The real benefit from this stuff is being able to tie up pieces of reusable functionality into neat little bundles, so that every time you load a "user" you can just call the same method.