/// <summary>
        /// Executes the statement
        /// </summary>
        /// <param name="myGraphDBSession">The DBSession to start new transactions</param>
        /// <param name="dbContext">The current dbContext inside an readonly transaction. For any changes, you need to start a new transaction using <paramref name="myGraphDBSession"/></param>
        /// <returns>The result of the query</returns>
        public override QueryResult Execute(IGraphDBSession myGraphDBSession)
        {
            DBTransaction _GraphDBTransaction;

            if (CommandType == Transaction.CommandType.Commit)
            {
                _GraphDBTransaction = myGraphDBSession.CommitTransaction();
            }

            else
            {
                _GraphDBTransaction = myGraphDBSession.RollbackTransaction();
            }

            if (_GraphDBTransaction.Success())
            {

                var _ReturnValues = new Dictionary<String, Object>();
                _ReturnValues.Add("UUID",           _GraphDBTransaction.UUID);
                _ReturnValues.Add("Created",        _GraphDBTransaction.Created);
                _ReturnValues.Add("Finished",       _GraphDBTransaction.Finished);
                _ReturnValues.Add("Distributed",    _GraphDBTransaction.Distributed);
                _ReturnValues.Add("IsolationLevel", _GraphDBTransaction.IsolationLevel);
                _ReturnValues.Add("LongRunning",    _GraphDBTransaction.LongRunning);
                _ReturnValues.Add("Name",           _GraphDBTransaction.Name);
                _ReturnValues.Add("State",          _GraphDBTransaction.State);

                return new QueryResult(new Vertex(_ReturnValues)).PushIExceptional(ParsingResult);

            }

            return new QueryResult(_GraphDBTransaction).PushIExceptional(ParsingResult);
        }