function testUpdate_NotNullableKeyViolation() {
  var table = env.schema.table('tableE');
  assertEquals(0, env.cache.getCount());

  var row = table.createRow({'id': 'pk1', 'email': 'emailAddress'});
  var journal = createJournal([table]);
  journal.insert(table, [row]);
  assertEquals(1, env.cache.getCount());

  journal = createJournal([table]);
  var rowUpdatedInvalid = table.createRow({'id': 'pk1', 'email': null});
  rowUpdatedInvalid.assignRowId(row.id());
  lf.testing.util.assertThrowsError(
      202,  // Attempted to insert NULL value to non-nullable field {0}.
      journal.update.bind(journal, table, [rowUpdatedInvalid]));
  journal.rollback();

  journal = createJournal([table]);
  var rowUpdatedValid = table.createRow(
      {'id': 'pk1', 'email': 'otherEmailAddress'});
  rowUpdatedValid.assignRowId(row.id());
  assertNotThrows(function() {
    journal.update(table, [rowUpdatedValid]);
  });
}
Tests that not-nullable constraint checks are happening within
Journal#update.