def METHOD_NAME(
    sheet: gspread.Spreadsheet,
    dataset: pd.DataFrame,
    name: str,
    columns_to_drop: Optional[List[str]] = None,
):
    columns_to_drop = columns_to_drop or []
    # Reorder dataset indices to put location group and num_locations first
    # + sort columns for consistency.
    dataset = dataset.reset_index()
    columns = [column for column in dataset.columns.values if column not in columns_to_drop]
    special_order = {LOCATION_GROUP_KEY: -2, "num_locations": -1}
    columns = sorted(dataset.columns.values, key=lambda x: (special_order.get(x, 0), x))
    dataset = dataset[columns]
    worksheet = update_google_sheet_with_data(sheet, dataset, name)
    # Add conditional formatting
    rules = gspread_formatting.get_conditional_format_rules(worksheet)
    for i in range(len(dataset) + 1):
        row = i + 1
        end_column = gspread.utils.rowcol_to_a1(row, len(columns))
        rule = _build_color_scale_row_rule(worksheet, f"B{row}:{end_column}")
        rules.append(rule)
    rules.save()