code: function(props){
  			var id = this.id(props);
  			var instance = this.instanceStore.get(id);
  			if( !instance ) {
  				instance = this.hydrateInstance(props);
  			}
  			this.addInstanceReference(instance);
  
  			var serialized = this.serializeInstance(instance),
  				self = this;
  
  			return Promise.resolve( this.updatedData(props, serialized) ).then(function(){
  
  				self.deleteInstanceReference(instance);
  				return instance;
  			});
  		}
docs: @function can-connect/real-time/real-time.updateInstance updateInstance
  @parent can-connect/real-time/real-time.methods
  
  Programatically indicate a new instance has been updated.
  
  @signature `connection.updateInstance(props)`
  
  Calls [can-connect/real-time/real-time.updatedData] in the right way so
  that the instance is updated and added to or removed from
  any lists it belongs in.
  
  @param {Object} props The properties of the instance that needs to be updated.
  
  @return {Promise<Instance>} the updated instance.
  
  @body
  
  ## Use
  
  ```js
  socket.on('todo updated', function(todo){
  todoConnection.updateInstance(todo);
  });
  ```