def METHOD_NAME(self, lower: bool) -> BlockDiagonalMatrix:
    if self._all_blocks_square:
        return BlockDiagonalMatrix(
            *[block.cholesky(lower) for block in self.blocks]
        )
    return super().METHOD_NAME(lower)