anchor.diff:      return streamController.stream;
     }
   
  +  /**
  +   * Insert the entity into the datastore.
  +   * If the entity already exists, nothing is inserted.
  +   */
     Future<Transaction> insert(Entity entity) {
       logger.info("Inserting $entity into datastore");
  -    return withTransaction((transaction) => transaction.insert.add(entity))
  +    return withTransaction((transaction) {
  +          return lookup(entity.key, transaction)
  +          .then((entityResult) {
  +            if (entityResult.isPresent) {
  +              return;
  +            }
  +            transaction.insert.add(entity);
  +          });
  +        })
           .then((transaction) {
             if (transaction.isCommitted) {
               logger.info("Insert successful (transaction id: ${transaction.id})");
  
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 the specified entity in the datastore.
     * Returns the committed transaction.
     *
     * *NOTE*: This method is not idempotent, which is a recommended property
     * for safe datastore transactions (see [0]). Updates should ideally be performed
     * manually via [:withTransaction:]
     *
     * [0]: https://developers.google.com/appengine/articles/handling_datastore_errors
     */
    @deprecated
    Future<Transaction> update(Entity entity) {
      logger.info("Updating $entity in datastore");
      return withTransaction((transaction) => transaction.update.add(entity))
  