Q:

Objectify - ofy() in method defined outside of transaction

A basic transaction looks like this:
import static com.googlecode.objectify.ObjectifyService.ofy;
import com.googlecode.objectify.Work;

// If you don't need to return a value, you can use VoidWork
Thing th = ofy().transact(new Work<Thing>() {
    public Thing run() {
        Thing thing = ofy().load().key(thingKey).now();
        thing.modify();
        ofy().save().entity(thing);
    }
});

When ofy().load() and other ofy() methods called from within the transaction they have all the benefits of the transaction, such as being atomic. However, does using a Util method that contains a ofy() method escape the transaction? Something like the following.
// If you don't need to return a value, you can use VoidWork
Thing th = ofy().transact(new Work<Thing>() {
    public Thing run() {
        Util.modify(thingKey);
    }
});

Where Util is defined somewhere like so.
public class Util {

    public static modify(thingKey) {
        Thing thing = ofy().load().key(thingKey).now();
        thing.modify();
        ofy().save().entity(thing);
    }

}

A:

The two cases you describe are exactly equivalent.
If you wish to run something outside of the transaction then Objectify provides a .transactionless() method to "escape" the transactional context.

