core/src/main/java/com/orientechnologies/orient/core/db/document/ODatabaseDocumentEmbedded.java
public void executeDeleteRecord(OIdentifiable record, final int iVersion, final boolean iRequired, final OPERATION_MODE iMode,
      boolean prohibitTombstones) {
    checkOpenness();
    checkIfActive();

    final ORecordId rid = (ORecordId) record.getIdentity();

    if (rid == null)
      throw new ODatabaseException(
          "Cannot delete record because it has no identity. Probably was created from scratch or contains projections of fields rather than a full record");

    if (!rid.isValid())
      return;

    record = record.getRecord();
    if (record == null)
      return;

    final OMicroTransaction microTx = beginMicroTransaction();
    try {
      microTx.deleteRecord(record.getRecord(), iMode);
    } catch (Exception e) {
      endMicroTransaction(false);
      throw e;
    }
    endMicroTransaction(true);
    return;
  }
public void executeDeleteRecord(OIdentifiable record, final int iVersion, final boolean iRequired, final OPERATION_MODE iMode,
      boolean prohibitTombstones) {
    checkOpenness();
    checkIfActive();

    final ORecordId rid = (ORecordId) record.getIdentity();

    if (rid == null)
      throw new ODatabaseException(
          "Cannot delete record because it has no identity. Probably was created from scratch or contains projections of fields rather than a full record");

    if (!rid.isValid())
      return;

    record = record.getRecord();
    if (record == null)
      return;

    final OMicroTransaction microTx = beginMicroTransaction();
    try {
      microTx.deleteRecord(record.getRecord(), iMode);
    } catch (Exception e) {
      endMicroTransaction(false);
      throw e;
    }
    endMicroTransaction(true);
    return;
  }
This method is internal, it can be subject to signature change or be removed, do not use.

@Internal