Creating two entities at once using entity metadata wrappers
Without saving the first entity i dont think its possible.

This is KO :

  // Create the first entity.
  $page = entity_create('node', array('type'=&gt;'page'));
  $entity_page = entity_metadata_wrapper('node', $page);
  $entity_page-&gt;title = 'page test!';
  //$entity_page-&gt;save();

  // Create the second entity.
  $article = entity_create('node', array('type'=&gt;'article'));
  $entity= entity_metadata_wrapper('node', $article);
  $entity-&gt;title = 'article without reference KO';
  $entity-&gt;field_paage = $paage;
  $entity-&gt;save();


This is OK : 

  // Create the first entity.
  $page = entity_create('node', array('type'=&gt;'page'));
  $entity_page = entity_metadata_wrapper('node', $page);
  $entity_page-&gt;title = 'page test!';
  $entity_page-&gt;save();

  // Create the second entity.
  $article = entity_create('node', array('type'=&gt;'article'));
  $entity= entity_metadata_wrapper('node', $article);
  $entity-&gt;title = 'article with reference OK';
  $entity-&gt;field_paage = $paage;
  $entity-&gt;save();


with the second code you have 2 entity (article and page) with the first node page is a reference for the content article.

What you need is save in the first time your file object.

To Update some fields (tested) :  

  $wrapper = entity_metadata_wrapper('user', $user);
  $wrapper-&gt;mail-&gt;set('sepp@example.com'); 
  $wrapper-&gt;field_first_name-&gt;set('First name');
  $wrapper-&gt;save();