def METHOD_NAME(self, ship_position):
    """Attempts to append the ship at the specified position.
    Attributes:
        ship_position (ShipPosition): The ship to append to the layout.
    Raises:
        BoardLayoutException: If the position is already occupied or is
            otherwise invalid.
    """
    self.ship_positions.METHOD_NAME(ship_position)
    # Check validity by rendering the board into a string
    try:
        self.render()
    except BoardLayoutException as e:
        self.ship_positions = self.ship_positions[:-1]
        raise e