anchor.diff:    /**
      * Delete the entity with the given key from the datastore.
      *
  +   * If the key is not found in the datastore at the beginning of the transaction,
  +   * the transaction is committed with no update to the datastore.
  +   *
      * Returns the committed transaction.
      */
     Future<Transaction> delete(Key key) {
       logger.info("Deleting ${key} from datastore");
  -    return withTransaction((Transaction transaction) => transaction.delete.add(key))
  +    return withTransaction((Transaction transaction) {
  +          lookup(key).then((result) {
  +            if (result.isPresent) return;
  +            transaction.delete.add(key);
  +          });
  +        })
           .then((transaction) {
             logger.info("Delete successful");
             return transaction;
  
positive.code:   /**
     * Insert the specified entities into the datastore.
     * Returns the committed transaction.
     */
    Future<Transaction> insertMany(Iterable<Entity> entities) {
      logger.info("Inserting ${entities} into datastore");
      return withTransaction((Transaction transaction) => transaction.insert.addAll(entities))
          .then((transaction) {
              logger.info("Insert successful (transaction id: ${transaction.id}");
              return transaction;
  
negative.code:   /**
     * Update all the specified entities in the datastore.
     * Returns the committed transaction.
     *
     * *NOTE*: This method is not idempotent and will be removed in a future release,
     * See [0] for more information.
     *
     * [0]: https://developers.google.com/appengine/articles/handling_datastore_errors
     */
    @deprecated
    Future<Transaction> updateMany(Iterable<Entity> entities) {
      logger.info("Updating entities ${entities} in datastore");
      return withTransaction((Transaction transaction) => transaction.update.addAll(entities))
  