def METHOD_NAME(
        self,
        write_cursor: DBCursor,
        csv_row: dict[str, Any],
        timestamp_format: str = '%Y-%m-%d %H:%M:%S',
) -> None:
    """
    Process entry for BlockFi transaction history. Trades for this file are ignored
    and instead should be extracted from the file containing only trades.
    This method can raise:
    - UnsupportedBlockFiEntry
    - UnknownAsset
    - DeserializationError
    """
    if len(csv_row['Confirmed At']) != 0:
        timestamp = deserialize_timestamp_from_date(
            date=csv_row['Confirmed At'],
            formatstr=timestamp_format,
            location='BlockFi',
        )
    else:
        log.debug(f'Ignoring unconfirmed BlockFi entry {csv_row}')
        return
    asset = asset_from_blockfi(csv_row['Cryptocurrency'])
    raw_amount = deserialize_asset_amount(csv_row['Amount'])
    abs_amount = AssetAmount(abs(raw_amount))
    entry_type = csv_row['Transaction Type']
    # BlockFI doesn't provide information about fees
    fee = Fee(ZERO)
    fee_asset = A_USD  # Can be whatever
    if entry_type in ('Deposit', 'Wire Deposit', 'ACH Deposit'):
        asset_movement = AssetMovement(
            location=Location.BLOCKFI,
            category=AssetMovementCategory.DEPOSIT,
            address=None,
            transaction_id=None,
            timestamp=timestamp,
            asset=asset,
            amount=abs_amount,
            fee=fee,
            fee_asset=fee_asset,
            link='',
        )
        self.add_asset_movement(write_cursor, asset_movement)
    elif entry_type in ('Withdrawal', 'Wire Withdrawal', 'ACH Withdrawal'):
        asset_movement = AssetMovement(
            location=Location.BLOCKFI,
            category=AssetMovementCategory.WITHDRAWAL,
            address=None,
            transaction_id=None,
            timestamp=timestamp,
            asset=asset,
            amount=abs_amount,
            fee=fee,
            fee_asset=fee_asset,
            link='',
        )
        self.add_asset_movement(write_cursor, asset_movement)
    elif entry_type == 'Withdrawal Fee':
        action = LedgerAction(
            identifier=0,  # whatever is not used at insertion
            timestamp=timestamp,
            action_type=LedgerActionType.EXPENSE,
            location=Location.BLOCKFI,
            amount=abs_amount,
            asset=asset,
            rate=None,
            rate_asset=None,
            link=None,
            notes=f'{entry_type} from BlockFi',
        )
        self.add_ledger_action(write_cursor, action)
    elif entry_type in ('Interest Payment', 'Bonus Payment', 'Referral Bonus'):
        action = LedgerAction(
            identifier=0,  # whatever is not used at insertion
            timestamp=timestamp,
            action_type=LedgerActionType.INCOME,
            location=Location.BLOCKFI,
            amount=abs_amount,
            asset=asset,
            rate=None,
            rate_asset=None,
            link=None,
            notes=f'{entry_type} from BlockFi',
        )
        self.add_ledger_action(write_cursor, action)
    elif entry_type == 'Crypto Transfer':
        category = (
            AssetMovementCategory.WITHDRAWAL if raw_amount < ZERO
            else AssetMovementCategory.DEPOSIT
        )
        asset_movement = AssetMovement(
            location=Location.BLOCKFI,
            category=category,
            address=None,
            transaction_id=None,
            timestamp=timestamp,
            asset=asset,
            amount=abs_amount,
            fee=fee,
            fee_asset=fee_asset,
            link='',
        )
        self.add_asset_movement(write_cursor, asset_movement)
    elif entry_type == 'Trade':
        pass
    else:
        raise UnsupportedCSVEntry(f'Unsuported entry {entry_type}. Data: {csv_row}')