<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _transform_binary_composition_to_expression(expression, node, context):
 """Transform a BinaryComposition compiler expression into a SQLAlchemy expression. Recursively calls _expression_to_sql to convert its left and right sub-expressions. Args: expression: expression, BinaryComposition compiler expression. node: SqlNode, the SqlNode the expression applies to. context: CompilationContext, global compilation state and metadata. Returns: Expression, SQLAlchemy expression. """

    if expression.operator not in constants.SUPPORTED_OPERATORS:
        raise NotImplementedError(
            u'Filter operation "{}" is not supported by the SQL backend.'.format(
                expression.operator))
    sql_operator = constants.SUPPORTED_OPERATORS[expression.operator]
    left = _expression_to_sql(expression.left, node, context)
    right = _expression_to_sql(expression.right, node, context)
    if sql_operator.cardinality == constants.CARDINALITY_UNARY:
        left, right = _get_column_and_bindparam(left, right, sql_operator)
        clause = getattr(left, sql_operator.name)(right)
        return clause
    elif sql_operator.cardinality == constants.CARDINALITY_BINARY:
        clause = getattr(sql_expressions, sql_operator.name)(left, right)
        return clause
    elif sql_operator.cardinality == constants.CARDINALITY_LIST_VALUED:
        left, right = _get_column_and_bindparam(left, right, sql_operator)
        # ensure that SQLAlchemy treats the right bind parameter as list valued
        right.expanding = True
        clause = getattr(left, sql_operator.name)(right)
        return clause
    raise AssertionError(u'Unreachable, operator cardinality {} for compiler expression {} is '
                         u'unknown'.format(sql_operator.cardinality, expression))