It's a simplification, but I think of a session as being the same as a JDBC connection that merges updates.
So if you have a single session (like your sample code) that creates two objects to be stored, you will have to inserts. Under your numbers, it would take 2 seconds.
Now lets say that updating and reading a record also takes 1 second. The following code:
Code:
start TX at the top
function();
function();
function();
end TX
function() {
load object 1
update object 1
}
would take two seconds: one to read the object and one to update the object. This is were hibernate shines.
Also, if you are in a web application, you generally create a session per web request allowing many concurrent operations to happen at the same time.