code: @MustBeLocked (ELockType.WRITE)
    public void updateDocument (@Nullable final Term aDelTerm,
                                @Nonnull final Iterable <? extends IndexableField> aDoc) throws IOException
    {
      final long nSeqNum = _getWriter ().updateDocument (aDelTerm, aDoc);
      if (LOGGER.isDebugEnabled ())
        LOGGER.debug ("Last seq# after updateDocument is " + nSeqNum);
      m_aWriterChanges.incrementAndGet ();
    }
docs: Updates a document by first deleting the document(s) containing
  <code>term</code> and then adding the new document. The delete and then add
  are atomic as seen by a reader on the same index (flush may happen only
  after the add).
  
  @param aDelTerm
  the term to identify the document(s) to be deleted. May be
  <code>null</code>.
  @param aDoc
  the document to be added May not be <code>null</code>.
  @throws CorruptIndexException
  if the index is corrupt
  @throws IOException
  if there is a low-level IO error