Batch Support
The CassandraCSharpDriver.Graph package supports batching multiple graph updates into a single transaction. All mutations included
in a batch will be applied if the execution completes successfully or none of them if any of the operations fails.
Use the DseGraph.Batch() method to create a ITraversalBatch instance.
ITraversalBatch batch = DseGraph.Batch();
You can add traversals to your batch instance using Add() method.
batch
    .Add(g.AddV("person").Property("name", "Matt").Property("age", 12));
    .Add(g.AddV("person").Property("name", "Olivia").Property("age", 8));
Once you’ve added all the mutations to the batch, you can use ExecuteGraph(ITraversalBatch) or
ExecuteGraphAsync(ITraversalBatch) extension methods of the ISession defined in this package.
GraphResultSet result = session.ExecuteGraph(batch);
Batch options
You can specify batch options like consistency level, timeout and other settings when creating the batch instance.
var options = new GraphOptions().SetWriteConsistencyLevel(ConsistencyLevel.LocalQuorum);
var batch = DseGraph.Batch(options);
These options are going to be used when creating a GraphStatement internally and executing the batch.
Note that options defined at GraphTraversalSource level are going to be ignored for batch executions.
Complete code sample
using Cassandra;
using Cassandra.DataStax.Graph;
using Gremlin.Net;
using Gremlin.Net.Process.Traversal;
namespace Cassandra.DataStax.Graph.Samples
{
    public static class SampleBatchExecution
    {
        public static void ExecuteBatchSample(ISession session)
        {
            var g = DseGraph.Traversal(session);
            // Create a batch with options
            var batch = DseGraph.Batch(new GraphOptions().SetWriteConsistencyLevel(ConsistencyLevel.LocalQuorum));
            // Create 2 vertices and an edge connecting one to the other
            batch
                .Add(g.AddV("person").Property("name", "Matt").Property("age", 12))
                .Add(g.AddV("person").Property("name", "Olivia").Property("age", 8))
                .Add(g.V().Has("name", "Matt").AddE("knows").To(__.V().Has("name", "Olivia")));
            // Execute the batch using ExecuteGraph(ITraversalBatch) extension method
            session.ExecuteGraph(batch);
        }
    }
}