datastore: clarify Datastore.Mutate docs

These docs should indicate that the operation is not atomic.

Fixes #1742

Change-Id: Ib8ebc3e8c0f5bc1d3f91882cfa53b80a0f18ff4f
Reviewed-on: https://code-review.googlesource.com/c/gocloud/+/51810
Reviewed-by: BenWhitehead <benwhitehead@google.com>
Reviewed-by: Tyler Bui-Palsulich <tbp@google.com>
diff --git a/datastore/datastore.go b/datastore/datastore.go
index 4e5cc9c..bdc09b8 100644
--- a/datastore/datastore.go
+++ b/datastore/datastore.go
@@ -630,7 +630,8 @@
 	return mutations, nil
 }
 
-// Mutate applies one or more mutations atomically.
+// Mutate applies one or more mutations. Mutations are applied in
+// non-transactional mode. If you need atomicity, use Transaction.Mutate.
 // It returns the keys of the argument Mutations, in the same order.
 //
 // If any of the mutations are invalid, Mutate returns a MultiError with the errors.
diff --git a/datastore/doc.go b/datastore/doc.go
index 7cf890f..b528368 100644
--- a/datastore/doc.go
+++ b/datastore/doc.go
@@ -88,9 +88,11 @@
 Delete functions. They take a []*Key instead of a *Key, and may return a
 datastore.MultiError when encountering partial failure.
 
-Mutate generalizes PutMulti and DeleteMulti to a sequence of any Datastore mutations.
-It takes a series of mutations created with NewInsert, NewUpdate, NewUpsert and
-NewDelete and applies them atomically.
+Mutate generalizes PutMulti and DeleteMulti to a sequence of any Datastore
+mutations. It takes a series of mutations created with NewInsert, NewUpdate,
+NewUpsert and NewDelete and applies them. Datastore.Mutate uses
+non-transactional mode; if atomicity is required, use Transaction.Mutate
+instead.
 
 
 Properties